package Dominio;



/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
import Datos.GestorDiscoPartida;
import Datos.DiscoException;
import Presentacion.*;

/**
 *
 * @author Victor Varias Perez
 * Cluster y grupo: C8G3
 * Creat el 19-abr-2010 21:03:22
 *
 * Objetivo de la clase:
 * Clases utilizadas: 
 */

public class CtrlPartidaRemigio extends CtrlPartida{

/** Definición atributos */

    PartidaRemigio partida;

/** Definición métodos */

     /**
      * Guarda la partida con el formato y en el fichero que corresponda, el cual se llamara como nombrepartida y serÃ  Ãºnico.
      * @param nombrepartida Nombre de la partida para guardar el fichero.
      * @return  boolean que indica si se ha guardado correctamente.
      * @throws -
      */
    public boolean GuardarPartida ( String nombrepartida){

        try{
            GestorDiscoPartida.guardarPartida(partida, nombrepartida);
        }
        catch(Exception e){
            return false;
        }
        return true;

    }


    /**
      * Carga la partida del fichero con el nombre especificado.
      * @param nombrepartida Nombre de la partida para cargar.
      * @return  -
      * @throws -
      */
    public void CargarPartida (String nombrepartida) throws DiscoException{

        partida = (PartidaRemigio)GestorDiscoPartida.CargarPartida(nombrepartida);
    }



    /**
      * Destruye la partida actual.
      * @param -
      * @return  -
      * @throws -
      */
    public void AbandonarPartida (){
        
    }

    /**
     * Inicializa una nueva partida teniendo en cuenta los parametros introducidos.
     * @param num_jugadors Contiene el numero total de jugadores de la partida (maquinas y humanos)
     * @param num_mazos Contiene el numero de mazos que se necesitan
     * @param comodin Dice si se necesitan (true) o no (false) los comodines.
     * @return  -
     * @throws -
     */
    public void InicializarPartida (int num_jugadors, Reglas reg, GUIRemigio gui){

        this.partida = new PartidaRemigio(num_jugadors, reg, gui);
        this.partida.BarajarMazo();
        this.partida.DejarDescarte(this.partida.baraja.sacar_carta());
    }
    public void InicializarPartida (int i, int j, boolean comodin){
        
    }


    /**
      * Actualiza las Estadisticas de todos los jugadores de la partida.
      * @param k entero que nos da la posicion del ganador dentro del vector
      * @return  -
      * @throws -
      */
    public void ActualizarEstadisticas (){
        JugadorRemigio jug;
        int pnts;
        int i = partida.getNumJugadores();
        for (int j = 0; j<i; j++){/*Este bucle nos recorre todos los jugadores
                                   * de la partida actualizando su puntuación
                                   * en estadisticas
                                   */
            jug = (JugadorRemigio) partida.VerJugador(j);
            //miramos si el jugador es el ganador
                jug.ActualizaEstadisticas();
        }
    }
    /**
     * Devuelve el atributo partida
     * @return Devuelve el atributo partida
     */
    public PartidaRemigio GetPartidaRemigio(){
        return partida;
    }


}
